export type TagType =
  | 'codehosting'       // 代码托管
  | 'developereco'      // 开发者生态
  | 'talent'            // 人才培养  
  | 'community'         // 社区活动
  | 'education'         // 教育资源
  | 'opensource'        // 开源相关
  | 'conference'        // 技术峰会
  | 'infrastructure'    // 基础设施
  | 'learning'          // 学习平台
  | 'quality'           // 代码质量
  | 'integration'       // 账号集成
  | 'governance'        // 治理标准
  | 'license'         // 开源协议
  | 'valueChainEcosystem' // 上下游生态
  | 'industryCommunication' // 行业交流

export type Tag = {
  label: string;
  description: string;
  color: string;
};

export const Tags: {[type in TagType]: Tag} = {
  codehosting: {
    label: '代码托管',
    description: '代码托管平台相关功能',
    color: '#39ca30',
  },
  developereco: {
    label: '开发者生态',
    description: '开发者社区和生态建设',
    color: '#e9669e',
  },
  talent: {
    label: '人才培养',
    description: '开源人才培养',
    color: '#dfd545',
  },
  community: {
    label: '园区活动',
    description: '园区活动',
    color: '#a44fb7', 
  },
  education: {
    label: '教育资源',
    description: '开源教育和培训资源',
    color: '#127f82',
  },
  opensource: {
    label: '开源项目',
    description: '开源项目',
    color: '#4285F4',
  },
  conference: {
    label: '技术交流', 
    description: '技术会议和活动',
    color: '#FF7043',
  },
  infrastructure: {
    label: '基础设施',
    description: '开发基础设施支持',
    color: '#AB47BC',
  },
  learning: {
    label: '学习平台',
    description: '在线学习和实训平台',
    color: '#26A69A',
  },
  quality: {
    label: '代码质量',
    description: '代码质量和检测工具',
    color: '#EC407A',
  },
  integration: {
    label: '账号集成',
    description: '多平台账号集成',
    color: '#7E57C2',
  },
  governance: {
    label: '治理标准',
    description: '开源治理标准',
    color: '#78909C',
  },
  license: {
    label: '开源协议',
    description: '开源许可证',
    color: '#5C6BC0',
  },
  valueChainEcosystem: {
    label: '上下游生态',
    description: '上下游生态',
    color: '#e95674',
  },
  industryCommunication: {
    label: '行业交流',
    description: '行业交流',
    color: '#785a95',
  },
};

export const TagList = Object.keys(Tags) as TagType[];
